package practice.reflection;

/** 反射 */
public class TestReflect {

    /*
    ① 调用某个类的对象的getClass()方法，即：对象.getClass()；
    ② 调用类的class属性类获取该类对应的Class对象，即：类名.class
    ③ 使用Class类中的forName()静态方法（最安全，性能最好）即：Class.forName(“类的全路径”)
      注意：在运行期间，一个类，只有一个Class对象产生。
      三种方式常用第三种，第一种对象都有了还要反射干什么。第二种需要导入类的包，依赖太强，不导包就抛编译错误。
     */
    public static void main(String[] args) throws Exception{


//        int i;
//        for (i = 1; i <=5 ; i++) {
//            if (i%2 !=0){
//                i++;
//                continue;
//            }
//        }
//        System.out.println(i);

        int sum = 1;
        for (int i = 0; i < 10; i++) {
            i++;
            sum += i;
        }
        System.out.println(sum);

        //1
        Student student1 = new Student();
        Class class1 = student1.getClass();
        //2
        Class class2 = Student.class;
        //3
        Class class3 = Class.forName("practice.reflection.Student");

        Student student = (Student) class3.newInstance();
        System.out.println(student.name);


    }
}


class demo{
    public static void main(String[] args) {
//        Goo goo = new Goo();
//        goo.test(5);
        int a = 4+2%(3*3)/2;
        System.out.println(a);

    }
}

class Goo{
    void test(short a){
        System.out.println("int");
    }
    void test(double a){
        System.out.println("double");
    }
    void test(long a){
        System.out.println("long");
    }
}


class Sample{
    int i = 20;
    int j = 10;
    void test(){
        int i = 3;
        System.out.println("result is"+(i+j));
    }

    public static void main(String[] args) {
        Sample a = new Sample();
        a.test();
    }
}

class Test{
    public static void main(String[] args) {
        int a = 9;
        a/=4;
        System.out.println(a);
        for (int i = 0; i < 3; i++) {
            for (int j = 3; j >=0 ; j--) {
                if (i==j){
                    continue;
                }
                System.out.println("i="+i+"j="+j);
            }
        }

        int x = 1;
        int y = 3;
        if (x>y){
            System.out.println();
        }
        else System.out.println();

        double sum = 0.0;
        for (int i = 1; i <= 176; i++) {
            sum+=i;
        }
        System.out.println(sum);
        sum /=4;
        sum /= 44;
        System.out.println(sum);


    }
}